@echo off
chcp 65001 >nul
echo 🔧 修复npm权限问题...

echo 📋 检测到的问题：
echo - EPERM权限错误
echo - npm缓存目录权限问题
echo - 可能被杀毒软件或编辑器占用
echo.

echo 🚀 开始修复...

:: 1. 清理npm缓存
echo 步骤1: 清理npm缓存...
npm cache clean --force
if %errorlevel% neq 0 (
    echo ⚠️  缓存清理失败，尝试其他方法...
)

:: 2. 检查npm配置
echo 步骤2: 检查npm配置...
npm config get cache
npm config get prefix

:: 3. 更改npm缓存目录到用户目录
echo 步骤3: 更改npm缓存目录...
set USERPROFILE_CACHE=%USERPROFILE%\.npm-cache
npm config set cache "%USERPROFILE_CACHE%"
echo 新的缓存目录: %USERPROFILE_CACHE%

:: 4. 更改npm全局目录
echo 步骤4: 更改npm全局目录...
set USERPROFILE_GLOBAL=%USERPROFILE%\npm-global
npm config set prefix "%USERPROFILE_GLOBAL%"
echo 新的全局目录: %USERPROFILE_GLOBAL%

:: 5. 创建目录
echo 步骤5: 创建必要目录...
if not exist "%USERPROFILE_CACHE%" mkdir "%USERPROFILE_CACHE%"
if not exist "%USERPROFILE_GLOBAL%" mkdir "%USERPROFILE_GLOBAL%"

:: 6. 设置环境变量
echo 步骤6: 设置环境变量...
setx NPM_CONFIG_CACHE "%USERPROFILE_CACHE%"
setx NPM_CONFIG_PREFIX "%USERPROFILE_GLOBAL%"

:: 7. 更新PATH环境变量
echo 步骤7: 更新PATH环境变量...
setx PATH "%PATH%;%USERPROFILE_GLOBAL%"

echo.
echo ✅ 修复完成！
echo.
echo 📋 修复内容：
echo - 缓存目录已更改到: %USERPROFILE_CACHE%
echo - 全局目录已更改到: %USERPROFILE_GLOBAL%
echo - 环境变量已更新
echo.
echo 🔄 请重新打开命令提示符，然后运行：
echo    npm install
echo.
pause
